home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / IBM VisualAge for Java Enterprise v4.0 Retail / ivj40 / setup / IDE.Cab / F76717_BasicCustomButtonUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-25  |  4.7 KB  |  246 lines

  1. package com.ibm.ivb.jface.basic;
  2.  
  3. import com.ibm.ivb.jface.parts.CustomButton;
  4. import com.ibm.ivb.jface.plaf.CustomButtonUI;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Dimension;
  8. import java.awt.Graphics;
  9. import javax.swing.AbstractButton;
  10. import javax.swing.ButtonModel;
  11. import javax.swing.Icon;
  12. import javax.swing.JComponent;
  13. import javax.swing.plaf.ComponentUI;
  14.  
  15. public class BasicCustomButtonUI extends CustomButtonUI {
  16.    private static final String kCBIBMCopyright = "(c) Copyright IBM Corporation 1998";
  17.    protected static CustomButtonUI cbuttonUI;
  18.    static int[] restoreTopX1 = new int[]{0, 0, 3, 3, 11};
  19.    static int[] restoreTopX2 = new int[]{1, 1, 4, 4, 10};
  20.    static int[] restoreTopY1 = new int[]{11, 3, 3, 0, 0};
  21.    static int[] restoreTopY2 = new int[]{10, 4, 4, 1, 1};
  22.    static int[] restoreBotX1 = new int[]{0, 8, 8, 11, 11};
  23.    static int[] restoreBotX2 = new int[]{1, 7, 7, 10, 10};
  24.    static int[] restoreBotY1 = new int[]{11, 11, 8, 8, 0};
  25.    static int[] restoreBotY2 = new int[]{10, 10, 7, 7, 1};
  26.  
  27.    public static ComponentUI createUI(JComponent var0) {
  28.       if (cbuttonUI == null) {
  29.          cbuttonUI = new BasicCustomButtonUI();
  30.       }
  31.  
  32.       return cbuttonUI;
  33.    }
  34.  
  35.    public Dimension getMaximumSize(JComponent var1) {
  36.       return this.getPreferredSize(var1);
  37.    }
  38.  
  39.    public Dimension getMinimumSize(JComponent var1) {
  40.       return this.getPreferredSize(var1);
  41.    }
  42.  
  43.    public Dimension getPreferredSize(JComponent var1) {
  44.       CustomButton var2 = (CustomButton)var1;
  45.       switch (var2.getShape()) {
  46.          case 0:
  47.             Icon var3 = ((AbstractButton)var2).getIcon();
  48.             if (var3 == null) {
  49.                return new Dimension(0, 0);
  50.             }
  51.  
  52.             return new Dimension(var3.getIconWidth(), var3.getIconHeight());
  53.          case 5:
  54.             return new Dimension(16, 12);
  55.          case 9:
  56.          case 10:
  57.             return new Dimension(11, 16);
  58.          case 11:
  59.          case 12:
  60.             return new Dimension(16, 13);
  61.          default:
  62.             return new Dimension(12, 12);
  63.       }
  64.    }
  65.  
  66.    public void paint(Graphics var1, JComponent var2) {
  67.       CustomButton var3 = (CustomButton)var2;
  68.       Color var4 = ((Component)var3).getBackground();
  69.       Color var5 = var4.brighter();
  70.       Color var6 = var4.darker();
  71.       ButtonModel var7 = ((AbstractButton)var3).getModel();
  72.       boolean var8 = var7.isArmed() && var7.isPressed();
  73.       switch (var3.getShape()) {
  74.          case 0:
  75.             Icon var9 = var8 ? ((AbstractButton)var3).getPressedIcon() : ((AbstractButton)var3).getIcon();
  76.             var9.paintIcon(var3, var1, 0, 0);
  77.             return;
  78.          case 1:
  79.             var1.setColor(!var8 ? var5.brighter() : var6.darker());
  80.             var1.drawLine(0, 1, 9, 1);
  81.             var1.setColor(!var8 ? var5 : var6);
  82.             var1.drawLine(0, 2, 5, 11);
  83.             var1.setColor(!var8 ? var6.darker() : var5.brighter());
  84.             var1.drawLine(6, 10, 10, 2);
  85.             var1.setColor(!var8 ? var6 : var5);
  86.             var1.drawLine(6, 11, 11, 1);
  87.             var1.drawLine(6, 9, 9, 2);
  88.             return;
  89.          case 2:
  90.          case 8:
  91.          default:
  92.             return;
  93.          case 3:
  94.             if (var8) {
  95.                var1.setColor(Color.black);
  96.                var1.drawLine(0, 5, 10, 0);
  97.                var1.setColor(var6);
  98.                var1.drawLine(0, 6, 10, 1);
  99.                var1.setColor(var5);
  100.                var1.drawLine(0, 6, 11, 11);
  101.                var1.setColor(var5.brighter());
  102.                var1.drawLine(11, 1, 11, 11);
  103.                return;
  104.             }
  105.  
  106.             var1.setColor(var5);
  107.             var1.drawLine(0, 5, 11, 0);
  108.             var1.setColor(var6);
  109.             var1.drawLine(0, 6, 11, 11);
  110.             var1.setColor(Color.black);
  111.             var1.drawLine(11, 1, 11, 11);
  112.             return;
  113.          case 4:
  114.             var1.setColor(!var8 ? var5 : Color.black);
  115.             var1.drawLine(0, 0, 0, 10);
  116.             var1.drawLine(0, 0, 11, 5);
  117.             if (var8) {
  118.                var1.setColor(var6);
  119.                var1.drawLine(1, 1, 1, 9);
  120.                var1.drawLine(1, 1, 10, 5);
  121.             }
  122.  
  123.             var1.setColor(var8 ? var5.brighter() : var6.darker());
  124.             var1.drawLine(11, 6, 0, 11);
  125.             return;
  126.          case 5:
  127.             if (var8) {
  128.                var1.setColor(Color.black);
  129.                var1.drawLine(0, 5, 11, 0);
  130.                var1.setColor(var6);
  131.                var1.drawLine(0, 6, 11, 1);
  132.                var1.setColor(var5);
  133.                var1.drawLine(0, 6, 11, 11);
  134.                var1.setColor(var5.brighter());
  135.                var1.drawLine(11, 1, 9, 3);
  136.                var1.drawLine(9, 8, 11, 11);
  137.                var1.setColor(var5);
  138.                var1.drawLine(9, 8, 15, 8);
  139.                var1.drawLine(15, 8, 15, 4);
  140.                var1.setColor(Color.black);
  141.                var1.drawLine(15, 3, 10, 3);
  142.                return;
  143.             }
  144.  
  145.             var1.setColor(var5);
  146.             var1.drawLine(0, 5, 11, 0);
  147.             var1.setColor(var6);
  148.             var1.drawLine(0, 6, 11, 11);
  149.             var1.setColor(Color.black);
  150.             var1.drawLine(11, 1, 9, 3);
  151.             var1.drawLine(9, 8, 11, 11);
  152.             var1.setColor(var6);
  153.             var1.drawLine(9, 8, 15, 8);
  154.             var1.drawLine(15, 8, 15, 4);
  155.             var1.setColor(var5);
  156.             var1.drawLine(15, 3, 10, 3);
  157.             return;
  158.          case 6:
  159.             var1.setColor(var4);
  160.             var1.fillRect(0, 0, 12, 12);
  161.             var1.setColor(!var8 ? var5.brighter() : Color.black);
  162.             var1.drawPolyline(restoreTopX1, restoreTopY1, 5);
  163.             var1.setColor(!var8 ? var5 : var6);
  164.             var1.drawPolyline(restoreTopX2, restoreTopY2, 5);
  165.             var1.setColor(var8 ? var5.brighter() : Color.black);
  166.             var1.drawPolyline(restoreBotX1, restoreBotY1, 5);
  167.             var1.setColor(var8 ? var5 : var6);
  168.             var1.drawPolyline(restoreBotX2, restoreBotY2, 5);
  169.             return;
  170.          case 7:
  171.             var1.setColor(!var8 ? var5 : var6.darker());
  172.             var1.drawLine(0, 0, 10, 0);
  173.             var1.drawLine(0, 0, 0, 10);
  174.             var1.setColor(!var8 ? var5 : var6);
  175.             var1.drawLine(1, 1, 1, 9);
  176.             var1.drawLine(1, 1, 9, 1);
  177.             var1.setColor(var8 ? var5.brighter() : var6.darker());
  178.             var1.drawLine(11, 1, 11, 11);
  179.             var1.drawLine(1, 11, 11, 11);
  180.             var1.setColor(var8 ? var5 : var6);
  181.             var1.drawLine(10, 2, 10, 10);
  182.             var1.drawLine(2, 10, 10, 10);
  183.             return;
  184.          case 9:
  185.             var1.setColor(!var8 ? var5 : var6.darker());
  186.             var1.drawLine(0, 7, 9, 7);
  187.             var1.drawLine(1, 1, 8, 1);
  188.             var1.drawLine(1, 13, 4, 10);
  189.             var1.drawLine(2, 13, 5, 10);
  190.             var1.setColor(var8 ? var5 : var6.darker());
  191.             var1.drawLine(1, 8, 10, 8);
  192.             var1.drawLine(5, 5, 8, 2);
  193.             var1.drawLine(6, 5, 9, 2);
  194.             var1.drawLine(2, 14, 9, 14);
  195.             var1.setColor(var6);
  196.             var1.drawLine(1, 2, 4, 5);
  197.             var1.drawLine(6, 10, 9, 13);
  198.             return;
  199.          case 10:
  200.             var1.setColor(!var8 ? var5 : var6.darker());
  201.             var1.drawLine(0, 7, 9, 7);
  202.             var1.drawLine(1, 4, 4, 1);
  203.             var1.drawLine(2, 4, 5, 1);
  204.             var1.drawLine(1, 10, 8, 10);
  205.             var1.setColor(var8 ? var5 : var6.darker());
  206.             var1.drawLine(1, 8, 10, 8);
  207.             var1.drawLine(5, 14, 8, 11);
  208.             var1.drawLine(6, 14, 9, 11);
  209.             var1.drawLine(2, 5, 9, 5);
  210.             var1.setColor(var6);
  211.             var1.drawLine(6, 1, 9, 4);
  212.             var1.drawLine(1, 11, 4, 14);
  213.             return;
  214.          case 11:
  215.             var1.setColor(!var8 ? var5 : var6.darker());
  216.             var1.drawLine(7, 1, 7, 10);
  217.             var1.drawLine(1, 2, 1, 9);
  218.             var1.drawLine(10, 5, 13, 2);
  219.             var1.setColor(var8 ? var5 : var6.darker());
  220.             var1.drawLine(8, 2, 8, 11);
  221.             var1.drawLine(2, 9, 5, 6);
  222.             var1.drawLine(2, 10, 5, 7);
  223.             var1.drawLine(14, 3, 14, 10);
  224.             var1.drawLine(8, 2, 8, 11);
  225.             var1.setColor(var6);
  226.             var1.drawLine(10, 7, 13, 10);
  227.             var1.drawLine(5, 5, 2, 2);
  228.             return;
  229.          case 12:
  230.             var1.setColor(!var8 ? var5 : var6.darker());
  231.             var1.drawLine(7, 1, 7, 10);
  232.             var1.drawLine(1, 5, 4, 2);
  233.             var1.drawLine(1, 6, 4, 3);
  234.             var1.drawLine(10, 2, 10, 9);
  235.             var1.setColor(var8 ? var5 : var6.darker());
  236.             var1.drawLine(8, 2, 8, 11);
  237.             var1.drawLine(5, 3, 5, 10);
  238.             var1.drawLine(11, 9, 14, 6);
  239.             var1.drawLine(11, 10, 14, 7);
  240.             var1.setColor(var6);
  241.             var1.drawLine(1, 7, 5, 11);
  242.             var1.drawLine(11, 2, 14, 5);
  243.       }
  244.    }
  245. }
  246.